<?php
namespace App\Common\Constants;

use App\Enums\{EnumTrait, DefaultCase, Localization};

/**
 * 用户常量信息
 */
enum UserConst: string {
    use EnumTrait;
    
    #[Localization(label:'平台内系统用户的唯一标志')]
    case SYS_USER               = "SYS_USER";

    #[Localization(label:'正常状态')]
    case NORMAL                 = "0";

    #[Localization(label:'异常状态')]
    case EXCEPTION              = "1";

    #[Localization(label:'用户封禁状态')]
    case USER_DISABLE           = "1";

    #[Localization(label:'角色封禁状态')]
    case ROLE_DISABLE           = "1";

    #[Localization(label:'部门正常状态')]
    case DEPT_NORMAL            = "0";

    #[Localization(label:'部门停用状态')]
    case DEPT_DISABLE           = "1";

    #[Localization(label:'字典正常状态')]
    case DICT_NORMAL            = "0";

    #[Localization(label:'是否为系统默认（是）')]
    case YES                    = "Y";

    #[Localization(label:'是否菜单外链（是）')]
    case YES_FRAME              = "0";

    #[Localization(label:'是否菜单外链（否）')]
    case NO_FRAME               = "1";

    #[Localization(label:'菜单类型（目录）')]
    case TYPE_DIR               = "M";

    #[Localization(label:'菜单类型（菜单）')]
    case TYPE_MENU              = "C";

    #[Localization(label:'菜单类型（按钮）')]
    case TYPE_BUTTON            = "F";

    #[Localization(label:'Layout组件标识')]
    case LAYOUT                 = "Layout";
    
    #[Localization(label:'ParentView组件标识')]
    case PARENT_VIEW            = "ParentView";

    #[Localization(label:'InnerLink组件标识')]
    case INNER_LINK             = "InnerLink";

    #[Localization(label:'校验返回结果码 唯一')]
    case UNIQUE                 = "0";
    #[Localization(label:'校验返回结果码 不唯一')]
    case NOT_UNIQUE             = "1";

    #[Localization(label:'用户名长度限制 最短')]
    case USERNAME_MIN_LENGTH    = "2";
    #[Localization(label:'用户名长度限制 最长')]
    case USERNAME_MAX_LENGTH    = "20";

    #[Localization(label:'密码长度限制 最短')]
    case PASSWORD_MIN_LENGTH    = "5";
    #[Localization(label:'密码长度限制 最长')]
    case PASSWORD_MAX_LENGTH    = "20";

}